<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/ajax_fn.js"></script>
</head>
<body>
    
</body>
<script>
     // 构造函数Promise自己的方法  Array.isArray   String.fromCharCode      => 构造函数自己使用
            
        // race      无论成功还是失败，返回第一个结果(谁快返回谁的数据)

            
    // 同时请求
        var p1 = readText("../data/1.txt",2000);
        var p2 = readText("../data/2.txt");
        var p3 = readText("../data/3.txt",1000);


    // p的状态最先返回结果的那个状态决定

    // race方法会对p1,p2,p3同时进行处理，p1,p2,p3有一个状态发生改变，p的状态就会跟着改变，那个率先改变状态的 Promise实例返回的值，就传递给p的回调函数


     // var p = Promise.race([p1,p2,p3]);     p.then(function(){});
        Promise.race([p1,p2,p3]).then(function(text) {
            console.log(text)
        }).catch(function(err) {
            console.log(err);
        })


    function readText(url,delay = 0){
        var p = new Promise(function(resolve,reject) {
            setTimeout(function() {
                $.ajax({
                    type:"get",
                    url,
                    success(text){
                        resolve(text);
                    }
                })
            },delay)
        })
        return p;
    };


</script
</html>